En la reunión de hoy aprenderemos acerca de python y sus cimientos. Veremos qué es Python, Ipython y Jupyter; comenzaremos con conceptos básicos de objetos, variables, operaciones. También jugaremos con un módulo de Python llamado Turtle el cuál nos ayudará an entender (espero!) un poco mejor esto de programación orientada a objetos.
En Python existen programas ya escritos que nos permiten agregar a nuestro código un sin fin de atributos. Esto generalmente hace la tarea de programar aún más sencilla, ya que no tenemos que implementar desde cero ciertas funciones de uso cotidiano. A esto se le llama módulo en Python.
Hoy vamos a usar un módulo que aparte de ser divertido nos ayuda a desarrollar nuestro pensamiento computacional, este módulo se llama Turtle y nos permite dibujar formas o patrones.
Vamos a empezar con Turtle. Para esto tenemos que importar un módulo de la siguiente manera:
Lo que acabamos de hacer es decirle a python: ...'oye quiero usar las funciones y objetos que tiene un programa llamado Turtle'...
Python lo que hace (si es que todo sale bien) es responder con: ...'ok'... que se puede ver en la forma de >>> o In[n]: si es que usamos ipython
Ahora ya podemos empezar a crear nuestro programa para dibujar.
Escribe los siguientes comandos en tu terminal y pon atención a lo que va pasando en la ventana
In [ ]:
import turtle
ventana = turtle.Screen()
ventana.bgcolor('lightblue')
ventana.title('Hello Erika!')
erika = turtle.Turtle()
erika.color('blue')
erika.pensize(5)
erika.forward(100)
erika.left(90)
erika.forward(100)
Ahora cambia el color de tu ventana, del tamaño y color del trazo, y si quieres también crea otra tortuga con tu nombre. Luego intenta dibujar un cuadrado, un triángulo y un hexágono
Ahora vamos a ver qué es lo que estuvimos usando.
In [1]:
import turtle
In [ ]:
erika = turtle
Veamos que tiene que decir Wikipedia acerca de Ipython: ..."IPython es un shell interactivo que añade funcionalidades extra al modo interactivo incluido con Python, como resaltado de líneas y errores mediante colores, una sintaxis adicional para el shell, autocompletado mediante tabulador de variables, módulos y atributos; entre otras funcionalidades"...
Como bien dice la wikipedia, ipython es una variante de python que es mucho más amable con el usuario. Te dice más acerca de los errores que puedas cometer y te ayuda a completar nombres cuando se te olvidan. El código que se corre en esta libreta de Jupyter es con Ipython
In [3]:
turtle.Turtle?
In [4]:
%quickref
Esto que ves aquí es una libreta de Jupyter ejecutando Ipython. Aquí puedes escribir texto (al estilo Markdown) y correr líneas de código que escribas, también hay funciones mágicas que te ayudan a hacer cosas como mostrar las gráficas que creas directamente en la libreta (generalmente Ipython genera una ventana nueva con la imagen lo cual es bastante molesto cuando estás con la libreta...)
Si te gusta leer en inglés y quieres más información puedes consultar el siguiente enlace
In [5]:
#Veamos las funciones mágicas de la libreta
%magic
In [6]:
type(5)
Out[6]:
In [7]:
type(5.0)
Out[7]:
In [8]:
5+5
Out[8]:
In [9]:
5-5.0
#¿Notas algo raro en este resultado?
Out[9]:
In [ ]:
5.0 * 5
In [10]:
#¿Qué crees que va a dar de resultado esta operación?
5/5
Out[10]:
In [11]:
#¿Cómo se puede hacer para que la división nos dé integer en lugar de float?
#Prueba esto
5//5
Out[11]:
In [12]:
5.0//5.0
Out[12]:
In [13]:
5.0//5
Out[13]:
Ahora imagina que queremos saber cuál es el residuo de una división. Python tiene un operador que se ve así "%" Veamos cómo funciona...
In [14]:
#¿Cuánto nos queda de residuo si dividimos 25%5?
25%5
Out[14]:
In [15]:
#¿Cuánto nos queda de residuo si dividimos 25%7?
25%7
Out[15]:
In [16]:
25%7.0
Out[16]:
In [ ]:
#Pista: doble estrella
In [17]:
5**2
Out[17]:
In [ ]:
In [ ]:
#Pista: módulo math
Al igual que en matemáticas, si necesitamos que las operaciones se hagan en un orden definido debemos poner la expresión que queremos que se realice primero entre paréntesis.
Por ejemplo si queremos que una suma se realice antes que una multiplicación y el resultado de esta se reste a otro número usaríamos una expresión parecida a esta:
((a + b) * c) - d
In [ ]:
In [ ]:
True
In [ ]:
False
In [ ]:
type(True)
In [ ]:
True and False
In [ ]:
True or True
In [ ]:
True > False
In [ ]:
#Un momento, si True es mayor que False ¿cómo es que python representa internamente a estos valores booleanos?
True == 1
In [ ]:
False == 0
In [ ]:
#¿Entonces se pueden sumar los valores booleanos? ¡Probemos!
True + True + False
In [ ]:
False - True
In [ ]:
True + True != 1
Como podrás darte cuenta, las operaciones y comparaciones que puedes hacer en estos valores son bastantes y puedes ir aumentando la complejidad usando paréntesis y combinando con lo que aprendiste a hacer de operaciones con python
Cuando quieres saber si un objeto es exactamente ese objeto hay un operador que se llama "is". Nada más que es importante no confundirlo con el operador "==" ya que este a diferencia del "is" te dice si el valor de un objeto equivale a otro. Suena confuso pero tal vez este ejemplo lo clarifique
In [ ]:
#Ya vimos que El valor de True "equivale" a 1
True == 1
In [ ]:
#Ahora nos preguntamos si True "es" 1
True is 1
In [ ]:
#y que tal si ahora preguntamos si True "es" True
True is True
In [ ]:
"Esto es un string"
In [ ]:
'Esto también'
In [ ]:
#Esto también es un string
'2'
In [ ]:
#y en python 3 se pueden concatenar estas series de caracteres sólo poniéndolos continuamente. Hay que notar que un
#espacio también es un caracter...
"Los números"' '"y"' ' 'símbolos'" "'también '"se usan"' ''3456%$#%'
Puedes crear espacios que luego vas a llenar en estos strings con un método que se llama format
In [ ]:
'{} of the {}'.format('75%', 'World')
In [ ]:
# También puedes usar palabras clave si necesitas poner una misma palabra muchas veces
'{sujeto} camina, {sujeto} juega, {sujeto} duerme con todos {predicado}'.format(sujeto = 'El perro', predicado = 'nosotros')
In [ ]:
print('Esta función imprime')
Hasta ahora hemos visto que podemos hacer operaciones sobre diferentes objetos de python, pero que pasa cuando queremos que una operación o un valor se quede disponible para que los usemos durante todo programa. En python hay algo que se llama variable y está formada por un espacio en el sistema de almacenaje que está asociado a un nombre. Ese espacio contiene una cantidad o información conocida o desconocida, es decir un valor.
Veamos algunos ejemplos.
In [ ]:
variable_1 = 5 + 5
In [ ]:
variable_2 = True
In [ ]:
variable_1 + variable_2
In [ ]:
cajón = 'Hola a todos'
In [ ]:
cajón
In [ ]:
print(cajón)
In [ ]:
cajón == variable_1
In [ ]:
Hasta aquí termina la reunión del día de hoy sigan practicando en casa y si tienen dudas pueden escribir al grupo y ente tod@s resolverlas!
Espero que hayan aprendido algo el día de hoy!